package com.six.biz;

import java.util.List;

import org.springframework.transaction.annotation.Transactional;

import com.six.vo.BillDetail;
import com.six.vo.temp.TempBillDetail;

/**
 * IBillDetaiManagementBiz 业务单明细业务类接口
 * 
 */
//@Transactional(propagation=Propagation.REQUIRED)
public interface IBillDetaiManagementBiz {
	/**
	 * 查询指定业务单的所有明细
	 * 
	 */
	@Transactional(readOnly=true)
	public List<BillDetail> findBillDetailListByBillId(String billId);
	/**
	 * 保存业务单明细
	 * 
	 */
	public void saveBillDetail(BillDetail b);
	/**
	 * 更新业务单明细信息
	 * 
	 */
	public void updateBillDetail(BillDetail b);
	/**
	 * 删除业务单明细，将业务单状态置为【删除】状态
	 * 
	 */
	public void deleteBillDetail(String id)throws Exception;
	/**
	 * 根据业务单明细 id 查询业务单
	 * 
	 */
	@Transactional(readOnly=true)
	public BillDetail findBillDetailById(String id);
	/**
	 * 恢复业务单明细，将业务单明细状态置为【活动】状态
	 * 
	 */
	public void revertBillDetail(String id)throws Exception;
	/**
	 * 业务单明细查询
	 * 
	 */
	@Transactional(readOnly=true)
	public List<TempBillDetail> findBillDetailList(String beginDate,String endDate,String
	billId,String customerName,String inOrEx,String detailsIsDel,String billState,String
	currentGoodsNum);
	/**
	 * 查询指定条件内的库存货物信息
	 * 
	 */
	@Transactional(readOnly=true)
	public List<TempBillDetail> findCurrentBillDetailList(String beginDate,String endDate, String
	detailsGoodsName, String custId,String detailsIsDel,String storeId,String siteId);
	/**
	 * 根据托盘 ID 查找订单
	 * 
	 */
	@Transactional(readOnly=true)
	public List<BillDetail> findByTrayId(String trayId) throws Exception;
	/**
	 * 查询指定条件内的库存货物信息，用于过户选货
	 * 
	 */
	@Transactional(readOnly=true)
	public List<TempBillDetail> findCurrentBillDetails(String custId);

}
